home *** CD-ROM | disk | FTP | other *** search
- property pMySprite, pTop, pBottom, pFieldMem, pFieldSpriteNum, pScrollFactor, pThumbMargin, pStartingLoc, pVisFlag
-
- on getPropertyDescriptionList me
- mylist = []
- repeat with y = 1 to the number of castLibs
- repeat with x = 1 to the number of castMembers of castLib y
- if member(x, y).type = #text then
- mylist.add(member(x, y).name)
- next repeat
- end if
- if member(x, y).type = #field then
- mylist.add(member(x, y).name)
- end if
- end repeat
- end repeat
- pdlist = [:]
- addProp(pdlist, #pTop, [#comment: "Top limit for scroll thumb:", #format: #integer, #default: 0])
- addProp(pdlist, #pBottom, [#comment: "Bottom limit:", #format: #integer, #default: 0])
- addProp(pdlist, #pFieldMem, [#comment: "Text Member Name:", #format: #member, #default: EMPTY, #range: mylist])
- addProp(pdlist, #pFieldSpriteNum, [#comment: "Text Member Sprite Number:", #format: #integer, #default: 1, #range: [#max: 120, #min: 1]])
- return pdlist
- end
-
- on beginSprite me
- pMySprite = me.spriteNum
- pStartingLoc = sprite(pMySprite).loc
- if member(pFieldMem).height < sprite(pFieldSpriteNum).height then
- sendAllSprites(#hideScrollBar)
- member(pFieldMem).scrollTop = 1
- else
- sendAllSprites(#showScrollBar)
- end if
- end
-
- on mouseDown me
- repeat while the stillDown
- slideScroll(me)
- end repeat
- end
-
- on arrowScroll me, scrollincr
- newV = sprite(pMySprite).locV + scrollincr
- if (newV < (pTop + pThumbMargin)) and (scrollincr < 0) then
- newV = pTop
- else
- if (newV > (pBottom - pThumbMargin)) and (scrollincr > 0) then
- newV = pBottom
- end if
- end if
- sprite(pMySprite).locV = newV
- updateStage()
- scroll(me)
- end
-
- on scroll me
- thumbPos = sprite(pMySprite).locV - pTop
- member(pFieldMem).scrollTop = thumbPos * pScrollFactor
- updateStage()
- end
-
- on slideScroll me
- if (the mouseV > pTop) and (the mouseV < pBottom) then
- sprite(pMySprite).locV = the mouseV
- else
- if the mouseV < (pTop + pThumbMargin) then
- sprite(pMySprite).locV = pTop
- else
- if the mouseV > (pBottom + pThumbMargin) then
- sprite(pMySprite).locV = pBottom
- end if
- end if
- end if
- updateStage()
- scroll(me)
- end
-
- on hideScrollBar me
- pVisFlag = 0
- sprite(pMySprite).loc = point(-1000, -1000)
- end
-
- on showScrollBar me
- pVisFlag = 1
- scrollRange = member(pFieldMem).height - sprite(pFieldSpriteNum).height
- thumbrange = (pBottom - pTop) * 1.0
- pScrollFactor = scrollRange / thumbrange
- pThumbMargin = sprite(pMySprite).height / 2
- member(pFieldMem).scrollTop = 1
- sprite(pMySprite).loc = pStartingLoc
- end
-
- on exitFrame me
- if (member(pFieldMem).height > sprite(pFieldSpriteNum).height) and (pVisFlag = 0) then
- sendAllSprites(#showScrollBar)
- else
- if (member(pFieldMem).height < sprite(pFieldSpriteNum).height) and (pVisFlag = 1) then
- sendAllSprites(#hideScrollBar)
- end if
- end if
- end
-